#[derive(Debug)]
struct Person<'a> {
    name: &'a str,
    age: u8
}
fn main() {
    // format!：将格式化文本写到字符串。
    // print!：将文本输出到控制台（io::stdout）。
    // println!: 将文本输出到控制台并换行
    // eprint!：将文本输出到标准错误（io::stderr）。
    // eprintln!：将文本输出到标准错误并换行
    let str = "海胆真帅！";
    let str2 = format!("${}$",str);
    println!("str: {}",str);
    println!("str: {0}, str2: {1}", str, str2);
    eprintln!("str: {}",str);
    eprintln!("str: {str}, str2: {str2}", str=str, str2=str2);

    println!("二进制数2: {:b}", 2);

    // `Structure` 是一个包含单个 `i32` 的结构体。
    #[derive(Debug)]
    struct Structure(i32);

    // 将 `Structure` 放到结构体 `Deep` 中。然后使 `Deep` 也能够打印。
    #[derive(Debug)]
    struct Deep(Structure);

    println!("Now {:?} will print!", Structure(3));
    
    println!("Now {:?} will print!", Deep(Structure(7)));

    let name = "Peter";
    let age = 27;
    let peter = Person { name, age };

    // 美化打印
    println!("{:#?}", peter);
}
